package Collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * 集合提供了统一的遍历方式  迭代器模式
 * Iterator  iterator（）
 * 该方法可以获取一个用来遍历当前集合的迭代器， 使用他对集合进行遍历
 *
 * Java。util.Iterator接口 迭代器接口 定义了遍历集合所需要的相关操作定义
 * 不同集合提供了一个用于遍历自身元素的迭代器实现类   以多态的角度当他们是Iterator即可
 * 迭代器遍历集合元素遵循的步骤  问  取  删   删除不是必要操作
 */
public class IteratorDemo {
    public static void main(String[] args) {
        Collection c = new ArrayList();
        c.add("one");
        c.add("two");
        c.add("#");
        c.add("three");
        System.out.println(c);
        //遍历 获取迭代器
        Iterator t = c.iterator();
        //boolean hasNext  通过迭代器询问集合是否有下一个元素  迭代器默认位置为集合中第一个元素之前   因此
        //第一次调用hasNext是询问是否有下一个元素
        while (t.hasNext()){
            Object obj = t.next(); //object接收   String s = (String)t.next() string类型要强转
            if ("#".equals(obj)){
                //迭代器在遍历过程中要求不能通过集合的方法增删元素  负责会抛出异常
               // c.remove(obj);
                t.remove();
                //System.out.println(c);
            }
            System.out.println(obj);
//             System.out.println(t.next());  //也可以直接输出
        }



    }
}
